home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
wb
/
czesc_2
/
iobject
/
iobject.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-31
|
5KB
|
193 lines
/* Include pour les objets */
/* (C) 1992,93 par Christophe PASSUELLO */
/* Thu Feb 4 12:32:48 1993 */
#ifndef EXEC_TYPES_H
#include "exec/types.h"
#endif
#ifndef INTUITION_INTUITION_H
#define INTUITION_PREFERENCES_H TRUE
#include <intuition/intuition.h>
#endif
/* definition d'une boite */
struct Box
{
UWORD x, y;
UWORD w, h;
};
#define COPY_BOX(dest,src) (*((struct Box *)dest))=(*((struct Box *)src))
/* Type de bordure pour Draw3DBox */
#define BOX_1IN 0
#define BOX_1OUT 1
#define BOX_2IN 2
#define BOX_2OUT 3
/* Classes d'objets */
#define CLASS_CYCLE 1
#define CLASS_SCROLLER 2
#define CLASS_BUTTON 3
#define CLASS_INTEGER 4
#define CLASS_STRING 5
#define CLASS_CHECK 6
/* IDCMP flags for the window *
#define IDCMP_CYCLE GADGETUP
#define IDCMP_CHECK GADGETDOWN
#define IDCMP_STRING GADGETDOWN|GADGETUP
#define IDCMP_BUTTON GADGETDOWN|GADGETUP
#define IDCMP_STRING GADGETUP
#define IDCMP_INTEGER GADGETUP
#define IDCMP_SCROLLER GADGETDOWN|GADGETUP|MOUSEMOVE
struct NewObject
{
UWORD LeftEdge, TopEdge; /* position de l'objet */
UWORD Width, Height; /* taille de l'objet */
UWORD Flags; /* Flags pour toutes les classes d'objet */
UWORD ClassFlags; /* Flags specialise pour chaque classe */
STRPTR LabelText; /* Label de l'objet */
struct TextAttr *Font; /* Fonte pour le label et le texte de l'objet */
};
/* Flags pour NewObject.Flags */
#define LABEL_MASK 0x007f /* position du label par rapport à l'objet */
#define LABEL_ABOVE 0x0001 /* au dessus */
#define LABEL_BELOW 0x0002 /* en dessous */
#define LABEL_RIGHT 0x0004 /* a droite */
#define LABEL_LEFT 0x0008 /* a gauche */
#define LABEL_INSIDE 0x0010 /* a l'interieur */
#define LABEL_HOT_KEY 0x0020 /* Souligne le caractères suivant le '_' */
#define LABEL_PEN2 0x0040 /* Label ecrit avec la couleur Pen2 */
#define OBJ_DISABLED 0x0080 /* Object ghosted (Off) */
struct NewCycle
{
struct NewObject NewObj;
STRPTR *TextArray;
};
struct NewButton
{
struct NewObject NewObj;
};
/* ClassFlags pour les boutons */
#define BT_TOGGLE 0x0001
#define BT_SELECTED 0x0002
struct NewScroller
{
struct NewObject NewObj;
UWORD Pos;
UWORD CurSize;
UWORD MaxSize;
};
/* ClassFlags pour les scrollers */
#define SC_VERTICAL 0x0001 /* Scroller vertical */
#define SC_NOMOUSE 0x0002 /* pas de FOLLOWMOUSE */
struct NewCheck
{
struct NewObject NewObj;
};
/* ClassFlags pour les checks */
#define CK_CHECKED 0x0001 /* le check est coche */
struct NewString
{
struct NewObject NewObj;
STRPTR Text;
UWORD MaxLength;
};
struct NewInteger
{
struct NewObject NewObj;
};
/* ClassFlags pour les integer et les string */
#define STR_SINGLEBORD 0x0001
#define STR_RIGHT 0x0002
#define STR_CENTER 0x0004
struct NewTextArea
{
UWORD LeftEdge, TopEdge;
UWORD Width, Height;
UWORD Flags;
UWORD ClassFlags;
STRPTR LabelText;
struct TextAttr *Font;
UBYTE FrontPen, BackPen;
UBYTE InterLine;
UBYTE WrMask;
};
/* flags pour NewTextArea.Flags */
#define LABEL_ABOVE 0x0001 /* au dessus */
#define LABEL_BELOW 0x0002 /* en dessous */
#define LABEL_RIGHT 0x0004 /* a droite */
#define LABEL_LEFT 0x0008 /* a gauche */
#define LABEL_PEN2 0x0040 /* Label ecrit avec la couleur Pen2 */
/* flags pour NewTextArea.ClassFlags */
#define TAF_SMOOTH_SCROLL 1
#define TAF_CLIP_TEXT 2
/* methodes generiques pour les Object */
CPTR FindObjectMsg(struct IntuiMessage *);
UWORD GetObjectID(CPTR);
UBYTE GetHotKey(CPTR);
/* prototypes */
VOID SetIObjectColors(UBYTE, UBYTE, UBYTE, UBYTE, UBYTE);
VOID Draw3DBox(struct Box *, struct RastPort *, UWORD);
VOID AdjustBox(struct Box *, BOOL);
VOID ExitEasyGadget();
BOOL InitEasyGadget();
/* methodes pour les objets */
CPTR CreateCycle(struct NewCycle *, ULONG);
CPTR CreateButton(struct NewButton *, ULONG);
CPTR CreateCheck(struct NewCheck *, ULONG);
CPTR CreateScroller(struct NewScroller *, ULONG);
CPTR CreateInteger(struct NewInteger *, ULONG);
CPTR CreateString(struct NewString *, ULONG);
VOID FreeObject(CPTR);
BOOL SendMsgToObject(CPTR, struct IntuiMessage *);
VOID AddObjectToWindow(CPTR, struct Window *, struct Requester *);
VOID RemoveObjectFromWindow(CPTR);
VOID DisplayObject(CPTR);
VOID EraseObject(CPTR);
VOID ModifyObject(CPTR, ...);
ULONG ObjectValue(CPTR);
/*CPTR CreateObject(struct NewObject *, UWORD, UWORD);*/
VOID ActivateObject(CPTR);
VOID OnObject(CPTR);
VOID OffObject(CPTR);
/* Prototypes pour les TextArea */
CPTR CreateTextArea(struct NewTextArea *, struct RastPort *);
VOID FreeTextArea(CPTR);
VOID SetTextAreaPen(CPTR, UBYTE, UBYTE);
VOID TAPuts(CPTR,char *);
VOID TAPrint(CPTR,char *);
VOID TAPrintf(CPTR,char *, ...);